//---------------------------------------------------------
//typedef void(__cdecl* tPrintHelpMessage)(const char* text, bool bQuick, bool bPermanent, bool bCheckGxt);
//tPrintHelpMessage PrintHelpMessage = (tPrintHelpMessage)ADDR_HELP_MESSAGE;
//Adres US 1.0: 0x588BE0
//Adres EU 1.0: 0x588C40
//Wzorzec (Pattern): 55 8B EC 51 53 56 8B 75 08 57
//Maska: xxxxxxxxxx
//---------------------------------------------------------
//typedef void(__cdecl* tRequestModel)(int modelID, int flag);
//tRequestModel RequestModel = (tRequestModel)0x4087E0;
//Adres US 1.0: 0x4087E0
//Adres EU 1.0: 0x408840
//Wzorzec: \x8B\x44\x24\x04\x8B\x54\x24\x08\x8B\x0C\xC5
//Maska: xxxxxxxxxxx
//---------------------------------------------------------
//typedef void(__cdecl* tLoadAllRequestedModels)(bool bPriority);
//tLoadAllRequestedModels LoadAllRequestedModels = (tLoadAllRequestedModels)0x40EA10;
//Adres US 1.0: 0x40EA10
//Adres EU 1.0: 0x40EA70
//Wzorzec: \x80\x3D\x00\x00\x00\x00\x00\x74\x06\xC6\x05
//Maska: xx?????xxxx
//---------------------------------------------------------
//typedef bool(__cdecl* tHasModelLoaded)(int modelID);
//tHasModelLoaded HasModelLoaded = (tHasModelLoaded)ADDR_HAS_MODEL_LOADED;
//Adres US 1.0: 0x407800
//Adres EU 1.0: 0x407860
//Wzorzec: \x8B\x44\x24\x04\x85\xC0\x78\x10\x8B\x0D
//Maska: xxxxxxxxxx
//---------------------------------------------------------
//typedef void(__cdecl* tSetModelIsNoLongerNeeded)(int modelID);
//Adres US 1.0: 0x408270
//Adres EU 1.0: 0x4082D0
//Wzorzec \x8B\x44\x24\x04\x85\xC0\x78\x0E\x8B\x0D
//Maska: xxxxxxxxxx
//---------------------------------------------------------
//typedef void(__fastcall* tGiveWeapon)(uintptr_t pPed, int weaponID, int ammo, bool bLikeUnused);
//tGiveWeapon GiveWeapon = (tGiveWeapon)0x5E6080;//0x5E4790; // Poprawny adres dla v1.0 US
//Adres US 1.0: 0x005E6080 
//Adres EU 1.0: 0x005E60E0
//Wzorzec  0F B6 44 24 04 56 8B F1
//Maska: xxxxxxxx
//---------------------------------------------------------
//typedef void(__cdecl* SpawnVehicleFunc)(int modelID);
//SpawnVehicleFunc CreateVehicle = (SpawnVehicleFunc)0x43A0B6; //EU 1.0 0x43A126
//US 1.0: 0x0043A0B6
//EU 1.0: 0x0043A126
//Wzorzec (Pattern): "\x56\x8B\xF1\x8B\x46\x14\x85\xC0" 
//Maska: "xxxxxxxx"
//---------------------------------------------------------
//typedef void(__fastcall* tSetCurrentWeapon)(uintptr_t pPed, int weaponID);
//tSetCurrentWeapon SetCurrentWeapon = (tSetCurrentWeapon)0x5E3220; // Adres v1.0 
//Adres US 1.0: 0x5E3220
//Adres EU 1.0: 0x5E3280
//Wzorzec (Pattern): \x8B\x44\x24\x04\x56\x8B\xF1\x8B\x06\xFF\x90
//Maska: xxxxxxxxxxx
//-----------------------------------------------------------

//-----------------------------------------------------------
//typedef int(__cdecl* tGetModelIdFromWeapon)(int weaponID);
//tGetModelIdFromWeapon GetModelIdFromWeapon = (tGetModelIdFromWeapon)0x438270;
//Adres US 1.0: 0x438270
//Adres EU 1.0: 0x4382D0
//Wzorzec (Pattern): \x0F\xB6\x44\x24\x04\x69\xC0\x70\x00\x00\x00\x05
//Maska: xxxxxxxxxxxx
//-----------------------------------------------------------
//typedef void(__cdecl* SpawnVehicleFunc)(int modelID);
//SpawnVehicleFunc CreateVehicle = (SpawnVehicleFunc)0x43A0B6; //EU 1.0 0x43A126
//Cheat Spawn	
//Adres US 1.0 0x43A0B6	
//Adres EU 1.0 0x43A126	
//56 8B F1 8B 46 14 85 C0
//Maska: xxxxxxxx
//-----------------------------------------------------------
//typedef void*(__cdecl* tCreateVehicle)(int modelID, float x, float y, float z);
//tCreateVehicle CreateVehicle = (tCreateVehicle)0x431F80;
//Engine Create	
//0x431F80	
//0x431FE0	
//FF 74 24 10 FF 74 24 0C FF 74 24 08
//Maska: xxxxxxxxxxxx
/*
unsigned char* addr = FindPattern(
    "\xFF\x74\x24\x10\xFF\x74\x24\x0C\xFF\x74\x24\x08", 
    "xxxxxxxxxxxx"
);

if (addr) {
    typedef void*(__cdecl* tCreateVehicle)(int modelID, float x, float y, float z);
    tCreateVehicle EngineCreate = (tCreateVehicle)addr;
    
    // Pamiętaj o RequestModel przed wywołaniem!
    void* myCar = EngineCreate(411, 2485.0f, -1667.0f, 13.0f); 
}
*/
//typedef void(__fastcall* tSetModelIndex)(void* ped, unsigned int modelID);
//tSetModelIndex SetModelIndex = (tSetModelIndex)0x5E4880;
//Adres US 1.0: 0x5E4880
//Adres EU 1.0: 0x5E48E0
//Wzorzec (Pattern): \x56\x8B\xF1\x8B\x44\x24\x08\x57\x8B\x7E\x14
//Maska: xxxxxxxxxxx


//typedef void(__cdecl* tCheatSpawnVehicle)(int vehicleID);
//tCheatSpawnVehicle CheatSpawnVehicle = (tCheatSpawnVehicle)0x43A0B0;
//EU 1.0: 0x43A110 (odpowiednik 0x43A0B0)
//EU 1.0: 0x43A126 (odpowiednik 0x43A0B6)



